//package _mst;
//
///**
// * 面试题 05.03. 翻转数位
// */
//public class T0503 {
//    public int reverseBits(int num) {
//        int ans = 0, preSum = -1, curSum = 0;
//        boolean flag = true;
//        for (int i = 0; i < 32; i++) {
//            if ((num & (1 << i)) != 0) {
//                curSum++;
//            } else if (flag) {
//                if (preSum == -1) preSum = curSum;
//                curSum = 0;
//                flag = false;
//            } else {
//                ans = Math.max(ans, preSum + curSum + 1);
//                preSum = curSum;
//                flag = true;
//            }
//        }
//        ans = Math.max(ans, curSum);
//        return ans;
//    }
//}
